Snort는 네트워크 침입탐지 프로그램으로 libpcap 라이브러리를 사용하여 네트워크 패킷을 검사하여 불법적인 네트워크 접근이나 스니핑, 스캔 등등 네트워크 공격을 탐지하는 툴이다. 전세계적으로 가장 많이 사용되는 IDS로써 사실표준(De facto)이다. (자세한 정보: http://www.snort.org/)
네트워크 구성
네트워크 구성도
위와 같이 DMZ 구역에 설치 할 예정이며 외부에서 들어온 패킷들 중 방화벽을 통과한 트래픽에 대하여 침입탐지를 수행하게 된다.
동작방식을 간단히 보면 Snort가 libpcap을 사용하여 패킷을 캡춰하고 정규식으로 작성된 룰을 기반으로 pcre를 사용하여 매칭을 한다. 공격으로 판단된 로그는 MySQL DB에 남기게 되고 사용자는 PHP로 작성된 BASE로 접속하여 웹페이지에서 로그를 쉽게 볼 수 있게된다.
1) 라이브러리 설치 libpcap과 pcre설치는 아래와 같은 명령으로 설치 할 수 있다. /usr/local/src 밑에서 압축을 해제 한 다음 아래와 같이 명령어를 입력한다.
> ./configure > make && make install
2) 어플리케이션 설치 MySQL 설치는 생략한다. 웹 문서에도 많이 나와 있으며 홈페이지에서도 쉽게 나와 있으므로 참조를 하자. MySQL 설치: http://www.onurmark.co.kr/4
Snort를 /usr/local/src에 압축을 해제하고 아래와 같은 명령어를 입력한다. 이때 --with-mysql 옵션은 MySQL이 설치된 디렉토리를 지정한다.(위치가 다를 수 있으니 확인)
> ./configure --with-mysql=/usr/local/mysql --enable-dynamic > make && make install
Apache와 PHP가 설치 되었으면 /usr/local/apache/conf/httpd.conf파일을 아래와 같이 수정한다.
# Make sure there's only **1** line for each of these 2 directives: # Use for PHP 4.x: #LoadModule php4_module modules/libphp4.so #AddHandler php-script php
# Use for PHP 5.x: LoadModule php5_module modules/libphp5.so AddHandler php5-script php
# Add index.php to your DirectoryIndex line: DirectoryIndex index.html index.php
AddType text/html php
# PHP Syntax Coloring # (optional but useful for reading PHP source for debugging): AddType application/x-httpd-php-source phps
ADODB와 BASE를 /usr/local/apache/htdocs에 압축을 해제하면 모든 설치가 완료 되었다.
마지막으로 snort와 BASE의 환경 설정만 남았다. /etc/snort/snort.conf 파일을 자신의 환경에 맞게 설정한 후 다음의 내용을 추가한다.
var RULE_PATH=/etc/snort/rules output database:log,mysql,user=snort password=snort dbname=snort host=localhost
/usr/local/apache/htdocs/base/base_conf.php.dist 파일을 base_conf.php파일로 복사한 다음 수정한다.
다른 호스트에서 스노트가 설치된 PC로 nmap으로 포트 스캐닝을 수행하고 로그가 남는지 확인해 보자 > nmap -O -sS [snort IP]
자 이제 모든 설치가 완료 되었고 정상적으로 수행하는 것도 확인을 했다. 이제 마지막으로 남은 것은 브릿지 유틸을 사용하여 NIC카드 2개를 브릿지 한다음 snort가 브릿지를 탐지하도록 설정하면 완료가 된다. brctl을 사용하여 브릿지를 구성한 후 snort를 실행할 때 -i [브릿지 이름] 옵션을 주면 된다.
음... 제출해야 하는 해답은 워드로 만들어서 내야 하고 문제는 4가지 방식으로 출제가 되었습니다. 네트워크 관련은 패킷 분석을 통해서 zip 암호 풀고 해당 두번째 패킷을 분석해야 하구요. 스크립트 관련은 한가지는 index.html안의 암호화된 부분 및 두번째는 pdf안에 포함된 부분을 찾아서 리포트 그리고 리버싱의 경우 실행화일을 분석해야 할 것으로 생각되어지네요. ^^; 마지막으로 스파이웨어의 셈플인데 이 부분을 분석해서 리포트를 써내면 참가자격이 주어진다고 하네요.
10월 1일부터 15일까지라고 하니 많은 분들의 참여 해보시기를.... 저의 경우 그저 옆에서 구경하는 구경꾼이므로.. 패스~~
[쿠키 IT] 국내에서 처음으로 국내외 해커들의 분석 기술을 가리는 이색 해킹대회가 열린다.
안철수연구소 1일 제 1회 ‘해커스 드림 (Hacker's Dream) 2008’ 국제 콘테스트를 개최한다고 밝혔다. 이 대회는 15일까지 이어질 예정이다.
‘해커스 드림 2008’은 국제 해킹·보안 컨퍼런스인 ‘POC(Power of Community) 2008’의 가장 큰 행사 중 하나로 공격과 방어로 이뤄지는 기존의 해킹대회와는 달리 바이러스 및 스파이웨어 등 악성코드 분석, 네트워크 패킷 분석, 악성 스크립트 분석 등 종합적인 분석 능력을 겨루는 것이 특징이다.
심사는 안철수연구소 보안전문가와 POC2008 주최자로 구성된 전문 심사위원들이 분석 보고서를 기준으로 평가할 예정이다. 평가 항목은 새로운 기술 접목 또는 색다른 방식으로 문제를 푸는 창의성, 분석 능력 및 분석 기술에 대한 이해도, 여러 형태의 문제 풀이에 대한 정확성, 결과 보고서의 체계성 및 명료성, 표현 능력 등을 종합 평가해 최종 우승자 1명을 선정할 예정이다.
이 대회는 순수한 해커정신을 바탕으로 실력을 겨루고 물질적 보상 보다는 최고의 명예를 중시한 것이 특징으로 최종 우승자에게는 ‘POC2008’에서 해당 기술을 발표할 수 있는 기회가 주어진다.
정보보안에 관심있는 누구나 개인 및 팀으로 참여할 수 있으며 팀원의 제한은 없다.
대회 웹사이트(http://www.powerofcommunity.net/event.html)에서 문제를 다운로드해 분석 보고서를 작성한 후 오는 15일까지 이메일(master@ahnlab.com)로 제출하면 된다.
안철수연구소 시큐리티대응센터 조시행 상무는 “해커스 드림은 기존의 공격방어 위주의 해킹대회와는 달리, 정보보호 분야에서 종합적인 분석 기술력을 겨루는 대회”라며 “이번 대회가 점점 지능화, 조직화 되고 있는 보안 위협에 대한 대응 능력을 향상시킬 수 있는 저변을 마련하는데 기여할 것”이라고 말했다. 국민일보 쿠키뉴스 김현섭 기자 afero@kmib.co.kr
이 보안 업데이트는 Windows Media Player의 비공개적으로 보고된 취약점, 즉 특수하게 조작된 오디오 파일이 Windows Media 서버로부터 스트리밍될 때 원격 코드의 실행이 가능하다는 문제점을 해결합니다. 사용자가 관리자 권한으로 로그온한 경우, 이 취약점을 악용한 공격자는 영향을 받는 시스템을 완전히 제어할 수 있습니다. 이렇게 되면 공격자가 프로그램을 설치할 수 있을 뿐 아니라 데이터를 보거나 변경하거나 삭제할 수 있고 모든 사용자 권한이 있는 새 계정을 만들 수도 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.
이 보안 업데이트는 Microsoft Windows GDI+에서 발견되어 비공개적으로 보고된 여러 취약점을 해결합니다. 이 취약점으로 인해 사용자가 영향을 받는 소프트웨어를 사용하여 특수하게 조작된 이미지를 보거나 특수하게 조작된 콘텐츠가 포함된 웹사이트를 탐색할 경우 원격 코드 실행이 허용될 수 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.
이 보안 업데이트는 비공개적으로 보고된 Windows Media 인코더 9 시리즈의 취약점을 해결합니다. 이 취약점은 사용자가 특수하게 조작된 웹 페이지를 볼 경우 원격 코드 실행을 허용할 수 있습니다. 사용자가 관리자 권한으로 로그온한 경우, 이 취약점을 악용한 공격자는 영향을 받는 시스템을 완전히 제어할 수 있습니다. 이렇게 되면 공격자가 프로그램을 설치할 수 있을 뿐 아니라 데이터를 보거나 변경하거나 삭제할 수 있고 모든 사용자 권한이 있는 새 계정을 만들 수도 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.
이 보안 업데이트는 비공개적으로 보고된 Microsoft Office의 취약점을 해결합니다. 이 취약점으로 인해 사용자가 특수하게 조작된 OneNote URL을 클릭할 경우 원격 코드 실행이 허용될 수 있습니다. 이 취약점을 악용한 공격자는 영향을 받는 시스템을 완전히 제어할 수 있습니다. 이렇게 되면 공격자가 프로그램을 설치할 수 있을 뿐 아니라 데이터를 보거나 변경하거나 삭제할 수 있고 모든 사용자 권한이 있는 새 계정을 만들 수도 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.
예전에 썼던 글을 겨우 찾아서 이렇게 올립니다. 제발... 변형하는건 좋지만 출처는 밝혀 주시는 것은 어떤지 궁금하네요.
흔히들 리눅스를 설치하고 그냥 외부에 공개해버리는 서버들이 간혹있습니다. 이에 따른 버그조차조 패치를 않하고 기본적으로 사용을 하는 분들이 많이 있는데 이는 잘못된 생각이며, 버젼별로 버그 패치를 꼭 해주셔야 합니다. 또한 각종 remote bug가 허용되는것들은 조심을 하셔야 한다고 생각되며 아래에 보안 리눅스 디폴트 퍼미션을 공개합니다. 마음대로 설정은 하셔도 되며 저에게는 어떠한 책임이 없음을 여기서 밝혀드립니다.
2. 시스템 툴들의 퍼미션 설정 chmod 0700 /usr/bin/w chmod 0700 /usr/bin/who chmod 0700 /usr/bin/finger
3. 네트워크 툴들의 퍼미션 설정 chmod 0700 /bin/ping chmod 0700 /usr/bin/telnet (이나 아마 /bin/telnet일겁니다.) chmod 0700 /usr/bin/ssh (만일 여러분이 ssh를 설치하였다면) chmod 0700 /usr/sbin/traceroute
▶물리적 보안 보통 서버가 외부 사람이 많이 오는곳에 설치되어있다면 그 사람들중에 물리적 크래킹을 하기위하여 다가오는 분들이 많이 있습니다. 이에 방어 할수 있는것은 바로 lilo와 root로 조인을 못하게 설정하는것입니다.
1. lilo.conf의 설정 /etc/lilo.conf 의 맨위에다가 아래와 같이 설정을 합니다. #My LILO password password=foobar <-- 비번입니다.
저장을 하고 나서, chmod a-r /etc/lilo.conf 아무도 못보게 설정을 합니다.
그다음 /sbin/lilo를 구동시켜 새로운 설정을 적용시킵니다.
2. /etc/inittab 의 설정 로컬에서는 루트로도 접근이 가능합니다. 허나 이를 막기 위하여 이 파일을 수정하셔야 합니다. ca::ctrlaltdel:/sbin/shutdown -t3 -r now 이라고 보이실겁니다. 이것을 아래와 같이 변경을 합니다. ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now 저장을 하시고 나서 아래와 같이 명령어를 수행합니다. #telinit q # 위와 같이 한후에 보시게 되면 /etc/에 shadow.allow가 만들어질것입니다. 그것이 있다면 아무나 리부팅을 못하는것이죠.
3./etc/securetty 의 설정 /etc/securetty 파일을 열게 되면 아마도 아래와 같이 있을것입니다.
# /etc/securetty tty1 tty2 tty3 tty4 tty5 tty6
이것은 로컬에서 root로 들어올수 있는것이죠. 그래서 이것을 막게 하는것입니다. 그래야 공개된 석상에서 아무도 root를 뚫고 들어오지를 못할테니까여... 설령 linux single로도... 그래서 아래와 같이 설정을 합니다. # /etc/securetty #tty1 #tty2 #tty3 #tty4 #tty5 #tty6
이후에 telinit q를 실행하여 지금 방금 설정한것에 대한 적용을 시킵니다. 그후 로그인을 해봅니다. Kernel 2.2.13-pre3 on an i686 / tty3 H4cker login: root Password: Login incorrect
login: root Password: Login incorrect
Done, root is not allowed login.
위와 같이 떨어지겠죠? 그렇다면 아무리 공개된 석상에 서버를 가져다 놓아도 크래킹 당할 염려가 없답니다. 그사람이 암호를 알지 못하는 이상... 첫번째 문서는 여기까지 입니다. 더욱 더 보람찬 리눅서들이 되시기 바랍니다.
Netscreen 의 기본 정보를 디버깅 하기 위하여 우리는 숨은 명령인 debug를 이용하여야 합니다. Netscreen 콘솔에 접속하시면 아래와 같은 명령어들을 보실 수 있습니다. login: netscreen (default) password: [netscreen] (default)
after that you will see the prompt: ssg5-fw1-> [tab] clear clear dynamic system info delete delete persistent info in flash exec exec system commands exit exit command console get get system information mtrace multicast traceroute from source to destination ping ping other host reset reset system save save command set configure system parameters trace-route trace route unset unconfigure system parameters
여기서 여러분은 debug라는 명령어를 보실 수 없습니다. 그렇지만, 만일 여러분이 debug라고 치신후 tab키를 치시게 되면 디버그에 관련된 파라미터를 출력할 수 있고, 여러분이 원하시는 어떠한 디버그를 하실 수 있습니다. ssg5-fw1-> debug [tab]
예를 들면, IKE 패킷과 에러에 관련된 디버깅은 "debug ike detail"이라고 치시면 됩니다. ssg5-fw1-> debug ike detail [Enter]
ldap 인증서버를 디버깅 하실 때에는 "debug auth all" 또는 "debug ldap all"이라고 명령을 내리실 수 있습니다. ssg5-fw1-> debug auth all [Enter]
넷스크린에는 dbuf의 정보를 디버깅 하실 수 있습니다. 여러분이 버퍼 사이즈를 수정하기 원하신다면 "set dbuf suze <number>"를 넣으실 수 있으며 버퍼허용은 32부터 4096 키로바이트입니다. ssg5-fw1-> set dbuf size 512 [Enter]
디버그 하신 것을 보고 싶으시다면 "get dbuf stream"이라고 치게 되면 보다 상세한 내용을 보실 수 있습니다. ssg5-fw1-> get dbuf stream [Enter]
버퍼를 초기화 시키고 싶다면 "clear dbuf"라고 치게 되면 모든 디버그 정보들이 초기화 됩니다. ssg5-fw1-> clear dbuf [Enter]
저의 경우 디버그 한 부분들을 tftp를 이용하여 로그를 보내고 있습니다. 왜냐하면 상세한 내용들이 가로 사이즈가 화면에 비해 크기때문에 로그를 파일로 보내여 vi 에디터로 이용하여 보곤 한답니다. ssg5-fw1-> get buf stream > tftp 192.168.1.15 netscreen.log
* Data Confidentiality 데이터 기밀성 (Data Confidentiality)은 네트워크를 통과하는 데이터의 내용을 제3자가 보더라도 알 수 없도록 하며 원래 데이터를 받을 사람만이 알 수 있도록 하는 것이다. 이는 사전에 공유한 키를 사용하여 데이터를 암호화함으로써 가능하다. 그러나 이 방법은 키가 노출될 경우 문제가 심각해지므로 이를 위해 안전한 키의 분배가 필요하다. 이러한 키의 안전한 관리 메커니즘으로 IKE(ISAKMP/OAKLEY) 프로토콜을 사용한다.
* Data Integrity 데이터 무결성 (Data Integrity)은 네트워크를 통해 전달되는 데이터가 중간에서 변조되지 않았음을 보장한다. 그래서 A가 B에게 메일을 보냈을 때 중간에 제3자인 C가 메일의 내용을 조금이라도 변조할 경우 원래의 메일을 받게 되는 B는 그 내용이 변조되었음을 알 수 있게 된다. 이것은 VPN이 암호화 및 전자서명(Digital Signature) 방식으로 통신하기 때문이다.
* Data Origin Authentication 데이터 근원 인증(Data Origin Authentication)은 네트워크를 통해 데이터를 보낸 자가 누구인지 인증하는 것이다. 예를 들어, 원래는 A가 B에게 메일을 보내는데 중간에 제3자인 C가 자신이 A인 것처럼 속이고 보낸다 하더라도 그 데이터가 A에서 오지 않았음을 확인할 수 있다. 이것이 가능한 이유는 통신을 하고자 하는 당사자들끼리 공유한 키를 다른 제3자가 알지 못한다는 가정을 하였기 때문이다. 따라서 메시지의 근원을 인증 할 수 있다.
*접근 통제(Access Control) 접근 통제(Access Control)는 인증된 사용자에 대해서만 접근을 허가하는 서비스이다. VPN은 기본적으로 IPSec 프로토콜을 사용하는데, 이 IPSec을 사용할 경우 게이트웨이간에 사전 협상을 한다. 이 과정에서 VPN 게이트웨이에 설정된 여러 정보들이 통신하는 각 종단과 맞아야 상대방의 요청이 받아 들여지게 된다. 그러므로 사전 공유 정보를 알지 못하는 사람의 접근을 막을 수 있다.
3) 용어 * SA (Security Association) 데이터 송수신자간에 비밀데이터(인증되었거나, 암호화된 데이터)를 교환할 때 사전에 암호 알고리즘, 키 교환방법, 키교환 주기 등에 대한 합의가 이루어져야 한다. 이러한 정보들은 SA 에 저장된다. 데이터 송수신자간의 안전한 통신을 위해서는 적어도 하나의 SA가 필요하다. 그러므로 패킷 인증과 암호를 위해서는 SA가 선행되어야 한다. 동일한 알고리즘이 사용되어도 서로 다른 두 개의 키가 요구될 경우에는 두 개의 SA가 필요하다.
SA 변수 - SPI (Security Parameters Index) - Source and destination IP address - Source and destination port number - User ID or System name - Security Protocol : AH or ESP - Authentication parameters - Replay protection parameters - Mode : Transport or Tunnel - SA lifetime - Fragmentation parameters (Path MTU)
* Security Association Databases
IPSec 프로토콜에는 보안연계 데이터베이스로 SPD(Security Policy Database)와 SAD(Security Associa- tion Database)가 있다. SPD는 패킷들의 출입여부를 결정한다. 패킷의 선택자들을 SPD의 내용들과 비교하여 그 패킷에 적당한 정책을 결정한다. 이때 사용될 수 있는 내용으로는 목적지 IP 주소, 트랜스포트 계층 프로토콜, 발신지•목적지 포트 등이 있고, 결정될 수 있는 정책으로는 통과, 폐기 그리고 IPSec 적용 등이 있다.
SAD는 데이터 교환 전에 통일되어야 할 요소들을 정의하는 데, 이는 데이터 송수신자간에 비밀데이터를 교환할 때 사전에 암호 알고리즘, 키 교환방법, 키교환 주기 등에 대한 합의가 이루어져야 하기 때문이다.
* IKE(Internet Key Exchange Protocol) VPN 암호화된 데이터를 주고 받기 때문에 데이터를 주고 받기 전에 암호를 풀 수 있는 key 값을 주고 받아야 된다. 키 교환 프로토콜은 SKIP, Photuris에서 시작하여 현재는 IKE(Internet Key Exchange)로 표준화되어 있다. IKE는 ISAKMP의 Framework에 Oakley 키 결정 알고리즘을 결합하여 SA의 협상과 키 교환 메커니즘을 제공하기 위한 프로토콜로서 Cisco Systems, Timestep, VPnet 등의 VPN 업체들도 IKE를 기본 키 교환프로토콜로 채택하여 사용하고 있다. IKE는 IETF 워킹그룹에서 ISAKMP 프레임웍을 기반으로 Oakley 키 결정 알고리즘을 결합하여 SA 협상과 키 교환 메커니즘의 표준으로 제정한 프로토콜이다 (참조 : RFC 2409 )
* Tunnel 모드 IP 데이터그램 전체를 보호하기 위하여 새로운 IP 헤더를 덧붙여서 IP 데이터그램 전체를 캡슐화 하고 호스트간 터널에 주로 이용한다.
* Transport 모드 데이터 전체를 캡슐화하고 새로운 IP 헤더를 추가하는 형태로 주로 게이트웨이(라우터) 간의 터널 형성에 이용되며, 이때 AH/ESP 헤더는 바깥쪽 IP 헤더 뒤, 안쪽의 IP헤더 앞에 붙는다.
* 인증 기술(Authentication Algorithms) 인증이란 크게 데이터가 변형되지 않았음을 증명하는 데이터의 인증과 송신자의 신분 확인 후 액세스 권한을 부여하는 사용자 인증으로 구분할 수 있다. 신분이 확실한 사람에게만 권한을 부여해 주기 때문에 네트워크의 보안을 유지할 수 있다.
가장 많이 사용하는 인증 방법으로 RADIUS 서버를 사용한 인증 방법을 들 수 있다. RADIUS서버는 이동 사용자 혹은 재택근무자의 수가 늘어남에 따라 이를 VPN 라우터에서 모두 인증시 발생할 수 있는 성능상의 문제점을 줄일 수 있게 한다.
VPN 라우터는 인증 과정의 수행을 위해 RADIUS 서버로 데이터를 전송하며 RADIUS 서버는 저장된 정보로 인증과정을 수행하게 된다. 이때 사용자들은 자신의 어드레스와 패스워드만으로 인증을 받게 된다.
이런 과정은 전체 네트워크의 성능을 더욱 강화시킬 수 있으며 네트워크의 원활한 관리 기능을 제공할 수 있다. 그리고 한 걸음 더 나간 고급기능으로 사용자별로 사용 시간을 추적, 과금을 부여하는 기능도 수행하는데 인증(Authentication), 허가(Authorization), 과금(Accounting) 서비스를 통틀어 AAA 서비스라고 부른다.
* 암호화 기술(Encryption Algorithms) 암호화란 외부의 침입으로부터 데이터의 보안 유지를 목적으로, 적절한 암호화 키를 가진 대상(pair)만이 읽을 수 있도록 데이터를 변형시키는 것이다. 암호화 방식으로는 PPTP 터널링에서 사용되는 MPPE와 IPSec 터널링에서 사용 되는 DES, 3DES, RC5 가 있으며, 키(Key) 방식과 함께 사용된다.
마이크로소프트의 MPPE 암호화는 40비트와 128비트 세션 키를 지원하며 256 패킷마다 자동으로 세션 키 변화가 진행되며, 이때 MS-CHAP과 같은 인증 알고리즘이 사용된다. 보다 강력한 암호화가 필요할 때 사용되는 IPSec은 DES(56bit), 3DES(168bit), RC5 등의 암호화 알고리즘을 사용하며, 이때 HMAC-MD5, HMAC-SHA1과 같은 인증 알고리즘이 사용된다.
암호화 알고리즘에는 비밀키 알고리즘과 공개키 알고리즘이 있다. 비밀키 알고리즘은 암호화와 복호화를 위해 같은 키를 사용하는 기술, 즉 타인이 알지 못하는 하나의 키를 사용한 암호화를 말한다. 우리가 사용하는 DES, 3DES, RC5는 비밀키 알고리즘에 해당한다. 공개키 알고리즘은 암호화키(공개키)와 복호화키(개인키)가 다른 2중 키를 사용하는 기술이다. 이때 각 호스트는 공개키를 사용해 각각의 키를 암호화하면(이때 다른 사람에게도 노출되어 있음) 이에 적합한 개인 키를 가진 사람만이 이를 복호화해 사용한다.
* CA (Certificate Authority) CA는 사용자에게 인증서를 발급하는 기관을 통칭한다. 그리고 CA 자신이 발행한 인증서와 사용자 정보를 관리한다. 이 CA가 발행하는 인증서는 여러 종류가 있을 수 있다. 일단 서로 VPN통신을 하기 위해서는 자신의 인증서, 상대의 인증서, 그 인증서를 신뢰 할만 하다고 인증하는 CA의 인증서가 필요하다.
여기서 CA는 VPN통신을 하는 모든 종단들이 주체가 되어서 각 종단들에게 인증서를 발급해 인증을 할 수도 있으며 그 중 하나의 종단이 CA가 되어서 인증서를 발급하는 경우도 있을 수 있고, 외부의 다른 제3자가 CA가 될 수도 있다.